package usf.gwt.ui.bootstrap.client;

import usf.gwt.ui.bootstrap.client.core.BootstrapWidget;
import usf.gwt.ui.bootstrap.client.core.JqueryUtils;

import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Text;
import com.google.gwt.user.client.ui.HasText;

public class IconText extends BootstrapWidget implements HasText {
	
	@Override
	protected Element initWidget() {
		Element e = Document.get().createSpanElement();
		e.appendChild(Document.get().createSpanElement());
		e.appendChild(Document.get().createTextNode(""));
		return e;
	}
	@Override
	protected void initStyle() {
		getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
		getIconElement().setClassName(IconTypes.ICONE_STYLE);
	}
	
	protected Element getIconElement() {
		return getElement().getFirstChildElement();
	}
	protected Text getTextElement(){
		return getElement().getChild(1).cast();		
	}

	public void setIcon(IconTypes type){
		JqueryUtils.switchClass(getIconElement(), IconTypes.values(), type);
	}
	@Override
	public String getText() {
		return getTextElement().getNodeValue();
	}
	@Override
	public void setText(String text) {
		getTextElement().setNodeValue(" " + text);
	}

}
